package com.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Test01 {
    public static void main(String[] args) {
        // 判断字符串是否是空值
        String flag = "good luck";
        if (flag != null && !flag.isEmpty()) {
            System.out.println("字符串不为空");
        } else {
            System.out.println("字符串是空值");
        }

        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person(1, "aa", "男", "175", "60"));
        list.add(new Person(2, "bb", "女", "165", "65"));
        list.add(new Person(3, "cc", "男", "160", "70"));
        list.add(new Person(4, "dd", "女", "170", "75"));
        list.add(new Person(5, "ee", "男", "180", "80"));
        list.add(new Person(6, "aa", "女", "185", "85"));
        list.add(new Person(6, "bb", "女", "185", "85"));

        // 使用Stream判断是否有重复的name，并打印出相同的值
        Map<String, Long> nameCountMap = list.stream()
                .map(Person::getName) // 提取name字段
                .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); // 按name分组并计数

        // 筛选出出现次数大于1的name
        List<String> duplicates = nameCountMap.entrySet().stream()
                .filter(entry -> entry.getValue() > 1) // 只保留出现次数大于1的name
                .map(Map.Entry::getKey) // 提取name
                .collect(Collectors.toList());

        // 判断是否存在相同的值并打印
        // if (duplicates.isEmpty()) {
        //     System.out.println("不存在相同的名称");
        // } else {
        //     System.out.println("存在相同的名称: " + String.join(", ", duplicates));
        // }

        if (!duplicates.isEmpty()) {
            System.out.println("存在相同的名称: " + String.join(", ", duplicates));
        }
    }
}
